﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Timetabling.Core.Contracts
{
    /// <summary>
    /// Interfaz para gestionar Aulas
    /// </summary>
    public interface IClassService : IGeneric<Classroom>
    {
        //Como se implementa IGeneric ya esta el edit, add, delete classroom

        /// <summary>
        /// Listar todos los recursos;
        /// </summary>
        /// <returns></returns>
        IList<Resource> GetAllResource();
        /// <summary>
        /// Listar todos los recursos de una clase
        /// </summary>
        /// <returns></returns>
        IList<Resource> GetAllResource(Classroom classroom);
        /// <summary>
        /// Añadir recurso a la clase
        /// </summary>
        /// <param name="classroom"></param>
        /// <param name="resource"></param>
        void AddResource(Classroom classroom, Resource resource);
        /// <summary>
        /// Quitar recurso a la clase
        /// </summary>
        /// <param name="classroom"></param>
        /// <param name="resource"></param>
        void DeleteResource(Classroom classroom, Resource resource);
        /// <summary>
        /// Obtener lista de recursos segun tipo recurso
        /// </summary>
        /// <param name="resourcetype"></param>
        /// <returns></returns>
        IList<Resource> ListarRecursos(ResourceType resourcetype);

    }
}
